Systems and methods for control of channel surfing

ABSTRACT

Systems and methods described provide ways to order channels surfed such that channels of likely greater interest to the user are presented to the user first, and channels of lesser interest are presented after. For examples, channels showing popular programs may be placed higher in a channel surfing lineup. The systems and methods may also take account of channels that are showing commercials during a time of channel surfing, and may skip over the same while surfing and/or may come back to the channel, or re-place or otherwise include the channel in the surfing lineup, at such time as the commercial has ended and regular programming has continued.

FIELD

The invention relates to the field of user interfaces for television,and in particular for channel control.

BACKGROUND

Television viewers commonly do not know what is on television at a giventime and wish to just browse or “channel surf” to see what is on ratherthan look up their programming guide. This allows viewers to seesnippets of various programs that are currently being broadcast.Traditionally this is performed by pressing the “channel up” button on atelevision, cable box, or satellite receiver remote control. Thisresults in the channels being cycled through in the numerical orderassigned by the FCC, cable company, or satellite company. The channelnumbering is usually set by a cable or satellite company based onbusiness decisions, e.g., to locate all of the major networks clusteredin the lower channels.

In some systems, users can mark channels as favorites and then onlychannel surf through the channels marked as favorites. This helps inthat some channels that the viewer never watches, such as shoppingchannels, preview channels, or channels not in the viewer's nativelanguage, are excluded in the surfing. However, this has a drawback inthat the set of channels the user marked as favorites is usually a smallsubset of the overall set of channels, so the majority of the content isnot included in the channel surfing. Moreover, the order of channels isstill restricted to be numerical.

Even if channel surfing is limited to channels marked as favorites, manyusers are annoyed when channel surfing if they channel surf to a channelshowing a commercial, in which case the user cannot determine theprogramming on the channel. The user can continue channel surfing, butuntil the channel is reached again while surfing, the user is unaware ofcontent available on the channel.

This Background is provided to introduce a brief context for the Summaryand Detailed Description that follow. This Background is not intended tobe an aid in determining the scope of the claimed subject matter nor beviewed as limiting the claimed subject matter to implementations thatsolve any or all of the disadvantages or problems presented above.

SUMMARY

Systems and methods according to present principles meet the needs ofthe above in several ways. For example, systems and methods according topresent principles provide ways to order channels surfed such thatchannels of likely greater interest to the user are presented to theuser first, and channels of lesser interest are presented after. Forexamples, channels showing popular programs may be placed higher in achannel surfing lineup.

Systems and methods according to present principles also may takeaccount of channels that are showing commercials during a time ofchannel surfing, and may skip over the same while surfing and/or maycome back to the channel, or re-place or otherwise include the channelin the surfing lineup, at such time as the commercial has ended andregular programming has continued.

In another implementation, systems and methods according to presentprinciples may make use of guide data in the determination of a channelsurfing lineup. The guide data may provide data and metadata to thechannel surfing system for use in determining a prioritization or orderof channels in a channel surfing lineup, e.g., by use of data such asgenres of interest to the user, shows previously seen by the user, andso on.

In one aspect, the invention is directed towards a method of providing achannel surfing functionality in which a channel controller controls asubsequent channel to be presented to a user when the user is channelsurfing, including: during playback of streaming data on a contentplayback device, receiving at a channel controller popularity data aboutabsolute or relative popularity of one or more channels constitutingstreaming data available to a user when channel surfing; receiving dataat the channel controller, the data constituting a request to navigateto a subsequent channel on the content playback device, the subsequentchannel streaming data for playback on the content playback device;within the channel controller, using the received popularity data in thedetermination of data constituting a prioritized list of one or morechannels, whereby the data constituting the prioritized list of one ormore channels describes data about an order of channels determined to beof likely interest of a user; within the channel controller, selecting asubsequent channel to be navigated to based on the prioritized list ofone or more channels; and using the channel controller, navigating tothe selected channel and displaying streaming data associated with theselected channel on the content playback device.

Implementations of the invention may include one or more of thefollowing. The prioritized list may contain only one channel. Thepopularity may be based on an overall popularity of the channel over aperiod of time. The popularity may also be based on a current popularityof the channel, the current popularity determined while the channel isdisplaying a given content item. The method may further include basingan order of the prioritized list on a status of playback of contentitems being displayed by the respective channels. The status of playbackmay be based on a combination of system clock data, guide data, andmetadata about a time remaining or time elapsed in the playback of thecontent item, or on an indication from a server that a number of systemsviewing the channel has increased by at least a predeterminedpercentage. The method may further include basing an order of theprioritized list on a selected content type. In some cases, a user maybe currently watching a channel, and data may be received at the channelcontroller about content preferences of other viewers watching thecurrently watched channel, and in these cases the content type may bedetermined by aggregating content type preferences of the other viewerswatching the currently-watched channel. The navigating may includenavigating from a cable, satellite, or over-the-air broadcast channel toa streaming internet broadcast channel or vice versa. Where the user iscurrently watching a channel, the method may further include displayinginformation about a subsequent channel in the prioritized list. Thepopularity may be based on historical statistics data or rating servicesdata, or may be based on data received from a social networking site.The method may further include basing an order of the prioritized liston demographics of the user. The method may further include receivinguser preferences data at the channel controller, and basing an order ofthe prioritized list on user preferences. The user preferences mayinclude one or more selected from the following group: a user indicationof a desire to not channel surf to channels playing a content item pasta predetermined point in the duration of the content item; a userindication of a desire to see content items of a predetermined genre; ora user indication of a desire to not see content items of apredetermined genre. The user indication may be receivedcontemporaneously with a channel surfing session, or maybe receivedprior to a channel surfing session. The user preferences may also bedetermined by user content consumption analysis, including analysis ofchannels frequently watched by the user.

If the subsequent channel is displaying a commercial, then the methodmay further include skipping the subsequent channel and determining anext subsequent channel to navigate to, and repeating the steps of:determining if the next subsequent channel is displaying a commercial;and if the next subsequent channel is not displaying a commercial, thennavigating to the next subsequent channel. The popularity data may bereceived from a server coupled to other systems running a method ofproviding channel surfing functionality.

In another aspect, the invention is directed towards a method ofproviding a channel surfing functionality in which a controller controlsa subsequent channel to be presented to a user when the user is channelsurfing, including: during playback of streaming data on a contentplayback device, receiving data at a channel controller, the datacorresponding to a request to navigate to a subsequent channel; at thechannel controller determining a subsequent channel to be navigated to;at the channel controller, receiving data about the determinedsubsequent channel, and using the received data about the subsequentchannel to determine if the subsequent channel is displaying acommercial; and if the subsequent channel is not displaying acommercial, then navigating to the subsequent channel, and if thesubsequent channel is displaying a commercial, then skipping thesubsequent channel in determining a next subsequent channel to navigateto, and repeating the steps of: determining if the next subsequentchannel is displaying a commercial; and if the next subsequent channelis not displaying a commercial, then navigating to the next subsequentchannel.

Implementations of the invention may include one or more of thefollowing. The method may further include basing the determining of asubsequent channel to navigate to at least in part on the popularity ofthe channel. The basing may include: receiving popularity data aboutabsolute or relative popularity of one or more channels available to auser when channel surfing; using the received popularity data in thedetermination of a prioritized list of one or more channels, whereby theprioritized list of one or more channels describes a list of channels inan order determined to be of likely interest of a user; and where thedetermining of a subsequent channel to navigate to is based at least inpart on the prioritized list of one or more channels. The method mayfurther include, after the skipping step, and after a predetermined timehas elapsed, determining that the skipped channel is the next subsequentchannel to navigate to. The predetermined time may be, e.g., between 10and 20 seconds, between 25 and 35 seconds, or determined by user input.For example, the user input may be at least partially based on theduration of a button press on a remote control (or a user interface of adevice acting as a remote control, e.g., a smart phone, tablet, laptop,or the like). The method may further include basing the determining of asubsequent channel to navigate to at least in part on a numeric order ofthe channels. The determining if the subsequent channel is displaying acommercial may further include determining if a predetermined proportionof other users indicated that the subsequent channel is displaying acommercial. And the determining if a predetermined proportion of otherusers indicated that the subsequent channel is displaying a commercialmay further include determining if a predetermined number, percentage,ratio, or proportion of other users activated a commercial button on aremote control (or a user interface of a device acting as a remotecontrol, e.g., a smart phone, tablet, laptop, or the like). Thedetermination of the next subsequent channel may be at least in partbased on metadata associated with the channel displaying a commercial.The method may further include receiving metadata from a source selectedfrom the group consisting of: a network source including a programlisting in a programming guide; a network source sourcing a broadcastsignal associated with the channel; at least one network sourceproviding aggregate data from a subset of other users, the subsetdefined by other users who skipped over the channel; or combinations ofthe above.

In another aspect, the invention is directed towards a method ofproviding a channel surfing functionality in which a channel controllercontrols a subsequent channel to be presented to a user when the user ischannel surfing, including: during playback of streaming data on acontent playback device, receiving data at a channel controller, thedata corresponding to a request to navigate to a first subsequentchannel; at the channel controller, determining a first subsequentchannel to be navigated to; at the channel controller, navigating to thefirst subsequent channel; at the channel controller, receiving a signalindicating user desire to delay subsequent navigation to the firstsubsequent channel for a predetermined time; at the channel controller,determining a second subsequent channel to be navigated to; at thechannel controller, navigating to the second subsequent channel; and atthe end of the duration of the predetermined time, and upon reception ofa request at the channel controller to navigate to a subsequent channel,navigating to the first subsequent channel.

Implementations of the invention may include one or more of thefollowing. The predetermined time may be, e.g., between 10 and 20seconds, between 25 and 35 seconds, or determined by user input. Forexample, the user input may be at least partially based on the durationof a button press on a remote control. The predetermined time may alsobe based at least partially on a time remaining in a program beingdisplayed on the first subsequent channel. The method may furtherinclude basing the determining of a subsequent first or second channelto navigate to at least in part on the popularity of the first or secondchannel. And the basing may further include: receiving popularity dataabout absolute or relative popularity of one or more channels availableto a user when channel surfing; and using the received popularity datain the determination of a prioritized list of one or more channels,whereby the prioritized list of one or more channels describes a list ofchannels in an order determined to be of likely interest of a user; andwhere the determining of a subsequent channel to navigate to is based atleast in part on the prioritized list of one or more channels. Themethod may further include basing the determining of a first or secondsubsequent channel to navigate to at least in part on a numeric order ofthe channels, where the determination of the first or second subsequentchannel is based at least in part on metadata associated with abroadcast occurring on the channel. The method may further includereceiving metadata from a source selected from the group consisting of:a program listing in a programming guide; a broadcast signal associatedwith the channel; aggregate data from a subset of other users, thesubset defined by other users who skipped over the channel; orcombinations of the above.

In another aspect, the invention is directed towards a method ofproviding a channel surfing functionality in which a channel controllercontrols a subsequent channel to be presented to a user when the user ischannel surfing, including: during playback of streamed data on acontent playback device, receiving or retrieving guide data from aserver about one or more channels available to a user when channelsurfing; at the channel controller, receiving a request to navigate to asubsequent channel; at the channel controller, using the received orretrieved guide data in the determination of data corresponding to aprioritized list of one or more channels, whereby the prioritized listof one or more channels describes a list of channels in an orderdetermined to be of likely interest of a user; at the channelcontroller, selecting a subsequent channel to be navigated to based onthe data corresponding to prioritized list of one or more channels; andnavigating to the selected channel.

Implementations of the invention may include one or more of thefollowing. The prioritized list may contain only one channel. The usingthe received or retrieved guide data may include using the guide data atleast in part to determine if: a user has at a prior time viewed aportion of a content item on a channel during channel surfing and hasnot dwelled on the channel displaying the content item for more than apredetermined time; and the content item is being displayed at a currenttime; and if the above two conditions are met, the channel may beremoved from the prioritized list until a new content item is beingdisplayed by the channel. The using the received or retrieved guide datamay include using the guide data to determine if: a user has at a priortime viewed a content item; and the content item is being displayed at acurrent time; and if the above two conditions are met, a channeldisplaying the content item may be removed from the prioritized listuntil a new content item is being displayed by the channel. The usingthe received or retrieved guide data may include using the guide data todetermine a collection of channels, the collection grouped by a commontheme, and ordering the prioritized list such that channels within thecollection are channel surfed consecutively. The method may furtherinclude: receiving user input about a desired theme; and ordering theprioritized list such that channels in the collection are higher in thelist than channels not in the collection. The theme may be a genre, maycorrespond to a series of episodic content, may correspond to a seriesof movies, or the like. The receiving or retrieving guide data mayinclude receiving metadata transmitted from the network server sourcingthe channel or obtained through a server corresponding to a third-partysource.

In other aspects, the invention is directed towards a non-transitorycomputer readable medium, including instructions for causing a computingenvironment to perform the above methods. In yet other aspects, theinvention is directed towards a controller configured to perform theabove methods, including where the controller is configured to receive a“next channel” or a “commercial” signal from a remote control.

Advantages of the invention may include, in certain embodiments, one ormore of the following. Viewers are presented when channel surfing withthe most popular channels or with channels most likely to have contentof interest. By starting with popular channels, the viewer is morelikely to quickly reach programming they desire to watch, thus missingless of such programming. Other advantages will be understood from thedescription that follows, including the figures and claims.

This Summary is provided to introduce a selection of concepts in asimplified form. The concepts are further described in the DetailedDescription section. Elements or steps other than those described inthis Summary are possible, and no element or step is necessarilyrequired. This Summary is not intended to identify key features oressential features of the claimed subject matter, nor is it intended foruse as an aid in determining the scope of the claimed subject matter.The claimed subject matter is not limited to implementations that solveany or all disadvantages noted in any part of this disclosure.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates a schematic diagram of a system for channel surfingaccording to present principles.

FIG. 2 is a diagram showing types of local and network data which may beemployed by a channel surfing controller according to presentprinciples.

FIG. 3 is a flowchart illustrating a first method according to presentprinciples.

FIG. 4 is a flowchart illustrating a second method according to presentprinciples.

FIG. 5 is a flowchart illustrating a third method according to presentprinciples.

FIG. 6 is a flowchart illustrating a fourth method according to presentprinciples.

FIG. 7 is a flowchart illustrating a fifth method according to presentprinciples.

FIG. 8 illustrates an exemplary schematic computing environment whichmay be employed as certain of the components described.

Like reference numerals refer to like elements throughout. Elements arenot to scale unless otherwise noted.

DETAILED DESCRIPTION

FIG. 1 illustrates a system 10 for channel surfing according to presentprinciples. In the figure, a content playback device 12 is illustratedsuch as a television, e.g., an IPTV. The content playback device 12 maybe in signal communication with a broadcast content source 36, e.g., acable network, a satellite network, or the like. The content playbackdevice may further be in signal communication with an IP content source34, which may also include cable networks, satellite networks, fibernetworks, and so on. The content playback device 12 may employ a tunerto allow reception of digital television channels, and the term is usedbroadly here to include any device that allows and enables content froma desired channel to be output to a display.

In some cases, instead of within the content playback device 12, contentis received at a set top box 14, which may also have a tuner 18. The settop box 14 may then transmit received content to be displayed to thecontent playback device 12. In some implementations the content playbackdevice will perform steps according to present principles, and in othercases a set top box may. In yet other cases, a channel surfingcontroller, channel controller, or just “controller” according topresent principles may be implemented as part of a remote control, or aspart of a user interface of a device acting as a remote control, e.g., asmart phone, tablet, laptop, or the like. Yet other variations will alsobe understood.

As noted, the content playback device 12 may have a channel surfingcontroller 24 which forms a portion or a module within an overallUI/display control 22. More particularly, the channel surfing controller24 performs functions as described in flowcharts described here,including flowcharts of FIGS. 3-7, and generally determines a subsequentchannel to be “surfed” to during a process of “channel surfing”. In thisspecification the term “channel surfing” is used to mean a processwhereby a user views multiple channels sequentially by stopping for ashort period of time on each one, generally until the user finds achannel they wish to view.

The surfing may be accomplished by clicking or activating a “channel up”or “channel down” button on a remote control, or by means of a specialbutton dedicated to channel surfing. Alternatively, the functionality ofthe channel up and channel down buttons may be repurposed when in achannel surfing mode.

The channel surfing controller 24 is activated during this process, andgenerally determines a next or subsequent channel to surf to. The nextchannel may be based on numerous factors as described herein, and may bebased in addition on more traditional factors as the next channel in anumerical list of channels. The channel surfing controller 24 may alsobe employed to allow the user to surf back to a previous or priorchannel, rather than a subsequent one.

While a channel surfing controller 24, formed as part of a UI/displaycontrol 22, is illustrated in FIG. 1 as being part of the contentplayback device, it will be understood that a channel surfing controller24′ may be formed as part of a UI/display control 22′ within the set topbox 14 as well. Either may employ button activations from a remotecontrol 26, e.g., a “next channel” button 28 or a “commercial” button”28′, as are described in greater detail below. Such buttons may also bevirtual and/or may constitute repurposing of current buttons to operatein a “channel surfing” mode.

The remote control 26 may be part of a mobile device such as a smartphone, tablet computer, or the like, or the user may simply operatecontrols on the content playback device or set top box itself. In someimplementations, the controller may be formed as part of a controllersystem server 32 in network communication with the content playbackdevice 12 or the set top box 14. In this case, user indications (e.g.,next channel, etc.) may be transmitted over a network to the controllersystem server 32 which in turn controls the channel tuned to by thecontent playback device 12 (or set top box 14) or which controlsdelivery of content on a desired channel (from a content source) to thecontent playback device 12 or set top box 14.

FIG. 1 also illustrates a number of other channel surfing systems 42a-42 c, which represent system similar to system 10. In this way, thefigure represents that data may influence the operation of the channelsurfing controller 24, where such data arrives from other systemslocated around the network. In other words, other users' actions caninfluence the operation, in some implementations, of the channel surfingcontroller 24.

The same is true of data from a social network server 38. As will bedescribed, action such as comments or hash tags from users may influencethe operation of the channel surfing controller 24. Such influences aregenerally on the basis of multiple users connected potentially aroundthe world, and so the technology of the network communication, as wellas the processing of the signals corresponding to the inputs of otherusers, may play a key role in certain implementations. And the same istrue from signals of the systems 42 a-42 c. In many cases such othersystems will connect to a subject channel surfing controller 24 througha controller system server 32, but it will also be understood that thesame may connect more directly, not through a server, as well as throughvarious other types of heterogeneous networks.

FIG. 2 illustrates a logical diagram 20 in which various types of localdata 44 and network data 46 are shown as inputs to the channel surfingcontroller 24. As will be seen, certain types of data may be eitherlocally stored or network accessible, or both, such as a guide data,metadata about programs, and the like.

One type of data which may be employed by a controller 24 is popularitydata 84. The popularity data 84 may pertain to the popularity of achannel, either a current popularity, i.e., how many users are currentlywatching the channel (at least as can be known from connected systems orother data), or an overall popularity as measured over a predeterminedtime, e.g., a television season, a month, a week, a day, an hour, or thelike. The popularity data 84 may also pertain to the popularity of aparticular content item being shown on a channel, irrespective of whatchannel is broadcasting the content item. Popularity data 84 relies onknowledge of other systems, although as noted such knowledge need not becontemporaneous, i.e., may be historical. The popularity data 84 mayalso be sourced from multiple sources, not just from the networksourcing the content. It is noted that when calculating popularity data,generally not counted are users who are watching a channel but have onlybeen watching the channel for a short period of time, as such may bedeemed to be channel surfing themselves. For example, if a user is on achannel for less than 5, 10, or 15 seconds, such may be deemed a channelsurfer and not calculated into the controller system as contributing tothe calculation of the popularity of any channel in particular. In thisway, the popularity of channels can be adjusted in real time, whichallows the popularity to reflect the actual content being shown by thechannel at the time.

Another type of data which may be employed by the controller 24 is dataabout a status of playback of the content item, either status data 64,stored locally, or status data 88, accessed from a network source. Inthis regard it is noted that certain users may desire to not viewcontent that is already half over, or that have passed some other stagein their delivery. Thus, the data 64 or the data 88 may be employed toaffect channel surfing for such users, particularly as data to becompared to a user preference criteria noted above (user preference datais discussed in greater detail below). For example, such data may beemployed to prioritize a channel surfing list such that channels thathave started new programming are prioritized higher than those that havenot. The determination of the commencement of new content, or thelikelihood of such, may be based on clock data 66, as compared to guidedata 52 or 92, as well as data 76 about other channel surfing systems.In particular, if a channel surfing controller detects a sudden increasein the number of people watching a channel, the same may infer that newcontent has recently begun.

As mentioned above, locally stored data 68 about user preferences, ornetwork accessed data 96 about the same, may be employed by thecontroller 24 in the determination of a subsequent channel to benavigated to. The user preferences may include preferred genres, themes,or the like. Such may also include preferences for or against certaintypes of content. Preference information can be received via entry bythe user, as well as by analysis of the user's viewing history or eventhird-party sources. Similarly, user data 56 may be employed, whichincludes data about, e.g., user settings and demographics. User data mayalso be network accessed, as user data 82. Where genre or theme is usedin the determination of a channel surfing order, e.g., that of theprioritized list, it is noted that the same may be determined either bylocally stored metadata 58 about programs, by network accessed metadata86 about programs, or by aggregating content type preferences 94 ofother users currently watching the channel. That is, by determiningaspects of other users currently watching the channel, especially theirinterests, the genre of a show currently playing on the channel may beinferred.

Other types of data which may be employed include locally stored guidedata 52 or network accessed guide data 92. As will be described ingreater detail below with respect to FIG. 7, such guide data may beemployed to determine if a user has already viewed a content item (andthus a channel showing such content item may be skipped in theprioritized list), or may be used as an indicator of a genre, or forother purposes. Moreover, when using channel surfing to navigate to achannel, guide data may be overlaid on the display of a current channeland employed to show information about the current channel, and the samecan be augmented with information about what is playing on the nextchannel coming up in the channel surfing order, e.g., within aprioritized list of channels.

The popularity of a channel can further be based on historicalstatistics and/or ratings services, either as locally stored data 48 ornetwork accessed data 78. In this way, channels that have beenhistorically popular, or popular on the basis of ratings, may be rankedhigher in the prioritized list. Such historical data may further includechannels that the user watches a lot, as such may be increased inpopularity even in the absence of an explicit notation by the user,e.g., addition to a favorites list.

Other data may include a user current consumption, which may beimplemented via locally stored data 72 or network accessed data 98. Forexample, if a user is currently enjoying a certain type of content,channels showing similar content may be arranged higher in theprioritized list. Similarly, a list of favorite channels 54, or data 62about programs stored on the user's DVR, may be used by the controller24 in determining a subsequent channel, a next subsequent channel, or aprioritized list of channels to be surfed.

Finally, a numerical order 74 of the channels may be employed, althoughin alternative implementations random order may also be used,particularly to ensure that the user sees all channels with equallikelihood. Generally, the numerical order (or random distribution) willonly be employed following the determination of a subsequent channel orprioritized list, and then only to choose a channel to display if allother aspects are equal. The determination of which types of data areemployed for any given system may be set by the user, by a systemdefault, or by a combination of such factors.

In related examples, the popularity calculations for channels can bepartitioned for sets of users with commonalities, e.g., using popularitydata 84 in combination with demographic data 56 or 82. Suchcommonalities may include age ranges, geography, or the like. In anotherimplementation, the prioritization as well as aspects such aspartitioning may be performed based on the set of channels available toviewers. Multiple factors can be used when establishing partitioning.Other factors will also be understood. For example, users may providestart ratings to one or more channels, indicating their interest inparticular channels, or a favorites list may be employed for a similarpurpose.

Referring to the flowchart 30 of FIG. 3, a first step may be to receivelocal and/or network data (step 102). A subsequent step is to receive arequest to navigate to a subsequent channel via channel surfing (step104). Generally, steps 102 and 104 may be performed in any order. Forexample, for popularity-based surfing, data may be received in step 102about popularity of various channels or content items. In step 104, thereceiving a request to navigate to a subsequent channel may includereceiving a button press from a user on a remote control indicating adesire to channel surf in a channel surfing mode provided by thecontroller 24.

Using the received data, a prioritized list is then determined (step106). The prioritized list, which may include just a single channel,generally provides one or more channels which will be consecutively orsequentially navigated to upon command by the user, e.g., upon receptionof a “next channel” or “subsequent channel” command or the like. Asnoted, the same may further be implemented by a “channel up” or “channeldown” command from a remote controlled, operated in a channel surfingmode.

The method may then select a subsequent channel based on the prioritizedlist (step 108), e.g., the next channel in the list, and the selectedchannel may then be navigated to (step 112). The method may then repeatfor subsequent channel surfing operations, starting at step 104.

In certain advanced implementations, channels showing commercials may beskipped or otherwise treated differently. For example, when navigatingto a subsequent channel, a step may be performed of determining if thesubsequent channel is showing a commercial (step 114). If not, thesubsequent channel may be navigated to (step 118). However, if thesubsequent channel is showing a commercial, then the subsequent channelmay be skipped or otherwise marked as a commercial (step 116), and anext subsequent channel selected. In some cases, as described in greaterdetail below, not only is the subsequent channel skipped but the same isnot returned to for a predetermined period of time, so as to allow thecommercial to complete and content to be displayed prior to placing thechannel back in the prioritized list or surfing lineup of channels.

FIG. 4 shows a more specific flowchart 40 detailing the use ofpopularity data in channel surfing. In a first step, popularity data isreceived about one or more channels (step 122). As noted, the popularitydata may be associated with the channel, content being shown on thechannel, or the like, and maybe a current popularity or an overallpopularity based on a number of viewers over a predetermined timeperiod. A request is then received to navigate to a subsequent channel(step 124). Using at least the popularity data, a prioritized list(which may be just one channel) is determined or developed (step 126).Other data may also be employed in the determination of the prioritizedlist. For example, data about favorites 142 may be employed, data aboutthe genre 144, which may in turn be compared against user genrepreference criteria, historical data 146 such as user viewing habits,data about other users 148, e.g., what other viewers are currentlyfinding popular, as well as other preferences data 152 about the user orother users. Data 138 may further be employed, including clock data,guide data, metadata, so as to determine the status of playback ofcontent items, and thus use the same in the determination of theprioritized list. For example, if a show is at its end, e.g., showingthe credits, such may be skipped in the prioritized list. Moreover,certain other guide data may determine if a program should appear in theprioritized list. For example, if the guide data indicates that the showis a murder mystery, then such may be skipped if the show is at or nearits end. Alternatively, if the show provides a more “horizontal”delivery of content, e.g., humorous internet videos, then such guidedata may suggest inclusion in the prioritized list even if the show isnearing its end.

In any case, once a subsequent channel is selected, the same isnavigated to (step 132). As noted previously, steps may be performed ofdetermining if the subsequent channel is showing a commercial (step134), and if so, marking the same as a commercial (step 135) andskipping the same or performing other functionality as noted. If thesame is not a commercial, then the channel may be navigated to (step136).

The navigation from one channel to another using a controller 24according to present principles may include navigating from an IP-basedchannel to a broadcast channel, or vice versa. Such is yet anotherbenefit of the current system, in some implementations, where suchtransitions are seamless and transparent to the user.

Referring next to the flowchart 50 of FIG. 5, a more detailed methodaccording to present principles is described, in particular for aspectsof channel surfing across channels showing commercials. As noted above,if the channel is showing a commercial, the user generally cannot tellwhat programming or content is currently being shown. Put another way,viewing commercials does not provide information to the viewer to helpthem determine what channel to view. In certain implementations ofsystems and methods according to present principles, a button or otheruser interface element may be employed to allow and enable the user tosurf to a next subsequent channel, and moreover may block surfing fromstopping on a current channel, i.e., the channel showing the commercial,for a predetermined duration of time. In some cases a separatecommercial button may be employed, and in other cases, the previouslydescribed “next channel” button (in surfing mode) may be employed. Inthe former case, the channel may be marked as showing a commercialbecause the user has provided such data via the button push, and thechannel may be so marked regardless of other data present such asmetadata which may also indicate the existence of a commercial on thechannel. In such cases such data is redundant. In the latter case, thechannel may be marked as showing a commercial generally only whereadditional data such as metadata indicates the existence of a commercialon the channel, because in these cases the user-entered data is notenough to unambiguously mark the channel as showing a commercial.

Variations will be understood. For example, a viewer pressing the “nextchannel” button for a longer or shorter period of time than usual mayprovide or constitute the added “additional data” that the viewer iswatching a commercial on the current channel. In these cases, a shorterbutton press duration may be useful since a viewer may quickly come tothe conclusion that a commercial is being viewed and is desired to beskipped (in many cases, when viewing content, the viewer may take alonger period of time to determine if the content is something they wishto watch).

The metadata noted above may be provided from paid programming beinglisted in a programming guide, metadata forming a part of the broadcast,metadata determined and/or received from an aggregate of other channelsurfers who just pressed the commercial button (or other buttons asnoted above) for the channel, or the like.

In a first step, a request is received to navigate to a subsequentchannel (step 154). A subsequent channel is then determined to benavigated to (step 156). This step may include several of the techniquesnoted above, including using the determination of a prioritized list ofchannels which then provides an order or sequence for the channelsurfing controller to progress through upon subsequent depressions of a“next channel” button.

The prioritized list, which again may constitute just one channel, maybe determined on the basis of popularity data (step 158), or using otherdata as described above. A step is then performed of determining if thesubsequent channel is a commercial (step 162). This step may beperformed in a number of ways. First, prior to the actual navigation tothe channel, metadata (step 172) and data from other systems (step 168),and the like, may be employed to determine if the subsequent channel isshowing a commercial. Alternatively, the channel may be navigated to,and upon the depression of a “commercial” button (or other technique asdescribed), the user may enter data indicating the channel is showing acommercial (step 169).

If the channel is showing a commercial, the channel may be skipped for apredetermined time (step 166). The predetermined time may be set by thesystem, e.g., 10 seconds, 20 seconds, 25 seconds, 35 seconds, or thepredetermined time may be based on user input, e.g., corresponding tothe particular commercial button pressed (if multiple options arepresent), or alternatively on a duration of a button press, use of aslider, or other techniques. If the channel is not showing a commercial,the channel may be navigated to (step 164).

In variations of the method of FIG. 5, the commercial button (or othersuch) may be employed to skip over portions of a non-commercial programor content item for which a user is unsure whether to watch duringchannel surfing. For example, if the program is showing a dreamsequence, the user may not be able to decide on the basis of what isseen whether they wish to view the channel further. Accordingly, thecommercial button may be employed to allow the user to come back to thechannel after a short period of time. In other variations,double-clicking the commercial button may be employed to indicate that adifferent duration of the predetermined time of step 166 should be used,and the different duration may be predetermined, may be based on aslider control, a default, another button press, or the like. Channelsskipped over in this fashion may be then, following the expiration ofthe predetermined time period, placed higher in the prioritized listthan otherwise, as the user is assumed to have not had the opportunityto view the content on the channel previously.

The flowchart 60 of FIG. 6 shows a flowchart implementing another methodaccording to present principles. In a first step, a request is receivedto navigate to a first subsequent channel (step 174). As before, a firstsubsequent channel is determined, e.g., by the determination of aprioritized list (step 176). It will be understood that the prioritizedlist may be determined “on the fly”, or even before a request isreceived for channel surfing.

In the determination of the prioritized list, various data as describedabove may be employed, e.g., popularity data, metadata, guide data, datafrom other users of channel surfing systems, and the like (step 178).

A signal is then received indicating a desire to delay subsequentnavigation to the first subsequent channel (step 182). This signal is inmany cases received after navigation has occurred to the firstsubsequent channel, particularly if the user has noted that he or she isnot interested in viewing the content. However, in some cases, dataabout a subsequent channel may be shown on a currently viewing channel,i.e., on the channel viewed prior to the subsequent channel. This dataabout a subsequent channel may include a preview, metadata such as aprogram name, genre data, or the like.

In any case, a second subsequent channel to navigate to is thendetermined, and the determination of such may be in the same way as thedetermination of the first subsequent channel (step 184). However,generally the first subsequent channel will be removed from theprioritized list, until such time as the first subsequent channel isshowing new content (this setting may be modified by the user). Thesecond subsequent channel may then be navigated to (step 186).

After a predetermined time, the first subsequent channel may benavigated to, or more particularly placed back into the prioritized listfor subsequent navigation in turn upon depression of a “next channel”button (step 188). In this case, the predetermined time may be based onthe time remaining in the program or content item being watched at thetime of occurrence of step 182, or upon user input, e.g., a userindication of a desire to put the channel back in the prioritized listor channel surfing line up (step 192).

Further ways to improve channel surfing may include the method 70 ofFIG. 7, which may be employed alone or in combination with the methodsof the previously described flowcharts. In particular, FIG. 7 describesways of improving the experience of channel surfing by taking advantageof available guide data. For example, guide data may indicate when theprogramming being shown by a channel is content that the viewer hasalready skipped while channel surfing. Guide data may further be used todetermine that a genre of content being played by one or more channelsmay be preferentially skipped or navigated to while channel surfing.Such may be particularly helpful when the channels are aligned with dataabout viewers' preferences and mood. The use of guide data may furtherbe employed to extend determinations made about specific channels toother like channels, similarities between channels being determined onthe basis of guide data, metadata, or the like.

In this regard it is noted that guide data, such as programmingmetadata, is typically available in cable and satellite systems. Forexample, broadcast stations generally at least include metadata aboutthe programming title and remaining time for the content they arebroadcasting. Existing channel surfing, i.e., by clicking “channel up”or “channel down” buttons, currently does not take advantage of suchprogramming data.

Thus, in a first step, guide data may be received or retrieved (step194), and such guide data may include metadata. A request may then bereceived to navigate to a subsequent channel (step 196), e.g., bytechniques noted above. A subsequent channel is then determined to benavigated to (step 198). For example, this determination may be based atleast partially on the guide data, and the determination may constitutethe construction of a prioritized list as described above. Theprioritized list may be further based on popularity data, metadata, orother factors as described above.

The determination of the subsequent channel based on the guide data mayinclude using guide data of various forms and types. For example, guidedata may be employed to determine a collection of channels grouped insome way (step 206), e.g., genre, a favorite actor, or the like. Guidedata may also be employed to determine prior shows watched by the user(step 208), e.g., by comparing a user consumption history with metadataabout current shows being broadcast. Thus, guide data may be employed toallow and enable skipping of channels while channel surfing that areshowing the same or similar content as the viewer previously skippedover, either on the same channel or on a different channel. Guide datamay further be employed to determine prior channels surfed by the user(step 212). Guide data may even further be employed to determine whennew content is available or is displayed (step 214), e.g., bydetermining when new shows are being broadcast (or are scheduled to bebroadcast). Other variations of using guide data will be understood, aswill combinations of such ways of using guide data. For example, guidedata may be employed to skip a channel where the channel is showingdifferent episodes of a show that were previously skipped over. Skippingdifferent episodes may be by default, or the same can be set by the useras a special mode by activation of a UI element, e.g., a special type ofbutton push, a different button, or other means.

Similar methods may be employed to skip over channels showing similarcontent skipped over in a previous channel surfing session. Guide datamay further be employed to, especially where users are particularlyinterested in a certain genre of content, to group all channels togetherin the prioritized list, where the grouped channels have metadataindicating a common genre, subject, or theme (or other common aspect).Where a user has entered a desired theme or genre, such may not only begrouped but may also appear first in the prioritized list. Users mayalso clear the data employed as guide data, e.g., reset the same, so asto not use a list of previous content (or channel surfing/skipping data)for a current channel surfing session.

Guide data as described above may be obtained through metadatatransmitted by the channel or can also be obtained through third-partysources.

What has been described are systems and methods relating to systems andmethods for providing channel surfing functionality in which a user ismore likely to find channels of interest than in the past. In suchsystems and methods, the computing environment may operate moreefficiently and may allow a user to watch desired content more rapidly,as determinations about channels to display to a user are madedynamically, on-the-fly, in real time, using potentially both historicaland contemporaneous data. Determinations about channels to show first,or an order of channels to show, may include using bases such as channelpopularity, prior user viewing history, contemporaneous input frommultiple other users, whether the channel is displaying live content,and the like. Additional variations and implementations are alsopossible. For example, filters may be enabled and employed to act asoverlays to only show a user programs of particular interest at thatpoint in time. Systems and methods according to present principles maybe employed with broadcast sources such as cable and satellite, as wellas IP sources such as Netflix®, Crackle®, Hulu®, and so on. Various userinputs are described above, such as the detection of multiple usersskipping a channel at a particular time, but it will be understood thatother user inputs are possible, including multiple users enteringdesired channels at a particular time. Beside shows currently beingbroadcast or available from IP content sources, the system may furtherbe employed to add programs into a prioritized list where such programsare currently stored on the user's DVR or other such local storage. Theprioritized list may even further be extended to items in a playlistassociated with a content source, e.g., items the user has marked towatch but which are not currently being broadcast (but are available ondemand through the content source). In some advanced implementations ofsystems and methods according to present principles, the system may notechannels that the user dwells on for a time period greater than apredetermined time period, e.g., channels the user appeared to showinterest in, but which were subsequently skipped over. Such channels maybe put back into the prioritized list, or may be put back into the listafter a predetermined period of time.

Accordingly, the techniques are not limited to the specific examplesdescribed above.

One implementation includes one or more programmable processors andcorresponding computer system components to store and execute computerinstructions, such as to provide the channel surfing functionalitywithin a controller. One such computing environment is disclosed below.

Referring to FIG. 8, a representation of an exemplary computingenvironment 80 is illustrated as an example of how one or more systemsaccording to present principles may be implemented. These systems mayinclude, e.g., components indicated herein by reference numerals 12, 14,26, 32, 34, 36, 38, and 42. Generally, the use of retrospective data,both locally stored and network accessible, as well as the use ofreal-time data collection to make determinations of subsequent channelsbased on, e.g., popularity data, require the use of such connectedcomputing environments to perform the methods of the flowchartsdescribed, e.g., flowcharts 3-7.

The computing environment 80 includes a channel controller 211, a memory215, storage 218, a media device 224, a user interface 232, aninput/output (I/O) interface 234, and a network interface 236. Thecomponents are interconnected by a common bus 238. Alternatively,different connection configurations can be used, such as a star patternwith the controller at the center.

The controller 211 includes a programmable processor and controls theoperation of a channel surfing controller 213. The controller 211 loadsinstructions from the memory 215 or an embedded controller memory (notshown) and executes these instructions to control the system.

Memory 215, which may include non-transitory computer-readable memory216, stores data temporarily for use by the other components of thesystem. In one implementation, the memory 214 is implemented as DRAM. Inother implementations, the memory 214 also includes long-term orpermanent memory, such as flash memory and/or ROM.

Storage 218, which may include non-transitory computer-readable memory222, stores data temporarily or long-term for use by other components ofthe system, such as for storing data or instructions. In oneimplementation, the storage 218 is a hard disc drive, a solid statedrive, or cloud storage.

The media device 224, which may include non-transitory computer-readablememory 226, receives removable media and reads and/or writes data to theinserted media. In one implementation, the media device 224 is anoptical disc drive or disc burner, e.g., a writable Blu-ray® disc drive228.

The user interface 232 includes components for accepting user input,e.g., the user activation of controls and buttons on a remote control,content playback device, set top box, or the like. The controller 211uses inputs entered by the user to adjust the operation of the computingenvironment.

The I/O interface 234 includes one or more I/O ports to connect tocorresponding I/O devices, such as external storage or supplementaldevices. In one implementation, the ports of the I/O interface 234include ports such as: USB ports, PCMCIA ports, serial ports, and/orparallel ports. In another implementation, the I/O interface 234includes a wireless interface for wireless communication with externaldevices. Where a controller is implemented in the fashion of thecomputing environment 80, the I/O interface 234 may provide an output toa tuner or other device or circuit responsible for changing the channelon a television, e.g., an IPTV, in response to a “next channel” or“surfing” button, or other buttons as noted elsewhere.

The network interface 236 allows connections with the local network andincludes a wired and/or wireless network connection, such as an RJ-45 orEthernet connection or Wi-Fi interface (802.11). Numerous other types ofnetwork connections will be understood to be possible, including WiMax,3G or 4G, 802.15 protocols, 802.16 protocols, satellite, Bluetooth®, orthe like.

The system may include additional hardware and software typical of suchdevices, e.g., power and operating systems, though these components arenot specifically shown in the figure for simplicity. In otherimplementations, different configurations of the devices can be used,e.g., different bus or storage configurations or a multi-processorconfiguration.

The methods shown and described above may be implemented in one or moregeneral, multi-purpose, or single-purpose processors. Unlessspecifically stated, the methods described herein are not constrained toa particular order or sequence. In addition, some of the describedmethods or elements thereof can occur or be performed concurrently.

Functions/components described herein as being computer programs are notlimited to implementation by any specific embodiments of computerprograms. Rather, such functions/components are processes that convey ortransform data, and may generally be implemented by, or executed in,hardware, software, firmware, or any combination thereof.

It will be appreciated that particular configurations of the operatingenvironment may include fewer, more, or different components orfunctions than those described. In addition, functional components ofthe operating environment may be implemented by one or more devices,which are co-located or remotely located, in a variety of ways.

Although the subject matter herein has been described in languagespecific to structural features and/or methodological acts, it is alsoto be understood that the subject matter defined in the claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

It will further be understood that when one element is indicated asbeing responsive to another element, the elements may be directly orindirectly coupled. Connections depicted herein may be logical orphysical in practice to achieve a coupling or communicative interfacebetween elements. Connections may be implemented, among other ways, asinter-process communications among software processes, or inter-machinecommunications among networked computers.

The word “exemplary” is used herein to mean serving as an example,instance, or illustration. Any implementation or aspect thereofdescribed herein as “exemplary” is not necessarily to be construed aspreferred or advantageous over other implementations or aspects thereof.

The system and method may be fully implemented in any number ofcomputing devices. Typically, instructions are laid out on computerreadable media, generally non-transitory, and these instructions aresufficient to allow a processor in the computing device to implement themethod of the invention. The computer readable medium may be a harddrive or solid state storage having instructions that, when run, areloaded into random access memory. Inputs to the application, e.g., fromthe plurality of users or from any one user, may be by any number ofappropriate computer input devices. For example, users may employ akeyboard, mouse, touchscreen, joystick, trackpad, other pointing device,or any other such computer input device to input data relevant to thecalculations. Data may also be input by way of an inserted memory chip,hard drive, flash drives, flash memory, optical media, magnetic media,or any other type of file—storing medium. The outputs may be deliveredto a user by way of a video graphics card or integrated graphics chipsetcoupled to a display that maybe seen by a user. Given this teaching, anynumber of other tangible outputs will also be understood to becontemplated by the invention. For example, outputs may be stored on amemory chip, hard drive, flash drives, flash memory, optical media,magnetic media, or any other type of output. It should also be notedthat the invention may be implemented on any number of different typesof computing devices, e.g., personal computers, laptop computers,notebook computers, net book computers, handheld computers, personaldigital assistants, mobile phones, smart phones, tablet computers, andalso on devices specifically designed for these purpose. In oneimplementation, a user of a smart phone or WiFi—connected devicedownloads a copy of the application to their device from a server usinga wireless Internet connection. An appropriate authentication procedureand secure transaction process may provide for payment to be made to theseller. The application may download over the mobile connection, or overthe WiFi or other wireless network connection. The application may thenbe run by the user. Such a networked system may provide a suitablecomputing environment for an implementation in which a plurality ofusers provide separate inputs to the system and method. In the abovesystem where channel surfing is contemplated, the plural inputs mayallow plural users to input relevant data at the same time.

As it is understood that embodiments other than the specific embodimentsdescribed above may be devised without departing from the spirit andscope of the appended claims, it is intended that the scope of thesubject matter herein will be governed by the following claims.

The invention claimed is:
 1. A method of providing a channel surfingfunctionality in which a channel controller controls a subsequentchannel to be presented to a user when the user is channel surfing,comprising: a. during playback of streaming data on a content playbackdevice, receiving at a channel controller popularity data about absoluteor relative popularity of one or more channels constituting streamingdata available to a user when channel surfing, the popularity data basedon an overall number of users currently watching the one or morechannels as determined while the channel is displaying a given contentitem; b. receiving data at the channel controller, the data constitutinga request to navigate to a subsequent channel on the content playbackdevice, the subsequent channel streaming data for playback on thecontent playback device; c. within the channel controller, using thereceived popularity data in the determination of data constituting aprioritized list of one or more channels, whereby the data constitutingthe prioritized list of one or more channels describes data about anorder of channels determined to be of likely interest of a user, furthercomprising basing an order of the prioritized list on a selected contenttype, wherein the user is currently watching a channel, and furthercomprising receiving data at the channel controller about contentpreferences of other viewers watching the currently watched channel, andwherein the content type is determined by aggregating content typepreferences of the other viewers watching the currently-watched channel;d. within the channel controller, selecting a subsequent channel to benavigated to based on the prioritized list of one or more channels; ande. using the channel controller, navigating to the selected channel anddisplaying streaming data associated with the selected channel on thecontent playback device.
 2. The method of claim 1, wherein theprioritized list contains only one channel.
 3. The method of claim 1,wherein the popularity data is based on an overall popularity of thechannel over a period of time.
 4. The method of claim 1, furthercomprising, within the channel controller, basing a calculation of theorder of the prioritized list at least partially on a status of playbackof content items being displayed by the respective channels, wherein thestatus of playback is at least partially based on a. metadata about atime remaining or time elapsed in the playback of the content item; orb. an indication from a server that an overall number of systems viewingthe channel has increased by at least a predetermined percentage.
 5. Themethod of claim 1, wherein the navigating includes navigating from acable, satellite, or over-the-air broadcast channel to a streaminginternet channel or vice versa.
 6. The method of claim 1, wherein theuser is currently watching a channel, and further comprising overlayinginformation about a subsequent channel in the prioritized list.
 7. Themethod of claim 1, wherein the popularity data is based on historicalstatistics data or ratings services data, or on data received from asocial networking site.
 8. The method of claim 1, further comprisingreceiving user preferences data at the channel controller, and basing anorder of the prioritized list at least partially on the user preferencesdata, wherein the user preferences data include one or more selectedfrom the following group: a. a user indication of a desire to notchannel surf to channels playing a content item past a predeterminedpoint in the duration of the content item; b. or c. a user indication ofa desire to not see content items of a predetermined genre.
 9. Themethod of claim 8, wherein the user preferences data is determined byuser content consumption analysis data, including data based on ananalysis of channels frequently watched by the user.
 10. The method ofclaim 1, wherein if the subsequent channel is displaying a commercial,then further comprising skipping the subsequent channel and determininga next subsequent channel to navigate to, and repeating the steps of: a.determining if the next subsequent channel is displaying a commercial;and b. if the next subsequent channel is not displaying a commercial,then navigating to the next subsequent channel.
 11. The method of claim1, wherein the popularity data is received from a server coupled toother systems running a method of providing channel surfingfunctionality.
 12. A controller configured to perform the method ofclaim 1, where the controller is configured to receive a “next channel”signal from a remote control.
 13. A method of providing a channelsurfing functionality in which a channel controller controls asubsequent channel to be presented to a user when the user is channelsurfing, comprising: a. during playback of streaming data on a contentplayback device, receiving data at a channel controller, the datacorresponding to a request to navigate to a subsequent channel; b. atthe channel controller, determining a subsequent channel to be navigatedto, the determining including receiving popularity data about asubsequent channel, and basing the determining of a subsequent channelto navigate to at least in part on the popularity data, wherein thepopularity data is based on an overall number of users currentlywatching the subsequent channel as determined while the channel isdisplaying a given content item; c. at the channel controller, receivingdata about the determined subsequent channel, and using the receiveddata about the subsequent channel to determine if the subsequent channelis displaying a commercial; and d. if the subsequent channel is notdisplaying a commercial, then navigating to the subsequent channel, andif the subsequent channel is displaying a commercial, then skipping thesubsequent channel and determining a next subsequent channel to navigateto, and repeating the steps of: determining if the next subsequentchannel is displaying a commercial; and if the next subsequent channelis not displaying a commercial, then navigating to the next subsequentchannel, wherein the determining if the subsequent channel is displayinga commercial includes determining if a predetermined proportion of otherusers indicated that the subsequent channel is displaying a commercial.14. The method of claim 13, wherein the basing further comprises: a.receiving popularity data about absolute or relative popularity of oneor more channels available to a user when channel surfing; b. using thereceived popularity data in the determination of a prioritized list ofone or more channels, whereby the prioritized list of one or morechannels describes a list of channels in an order determined to be oflikely interest of a user; c. wherein the determining of a subsequentchannel to navigate to is based at least in part on the prioritized listof one or more channels.
 15. The method of claim 13, wherein thedetermining if a predetermined proportion of other users indicated thatthe subsequent channel is displaying a commercial includes determiningif a predetermined number, percentage, ratio, or proportion of otherusers indicated a commercial on the subsequent channel.
 16. The methodof claim 13, further comprising receiving metadata associated with thechannel displaying a commercial at the channel controller and whereinthe determination of the next subsequent channel is at least in partbased on the received metadata, wherein the receiving metadata includesreceiving metadata from a source selected from the group consisting of:a. a network source including a program listing in a programming guide;b. a network source sourcing a broadcast signal associated with thechannel; c. at least one network source providing aggregate data from asubset of other users, the subset defined by other users who skippedover the channel; or d. combinations of the above.
 17. A controllerconfigured to perform the method of claim 13, wherein the controller isconfigured to receive a “next channel” signal from a remote control.